package com.star.star.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.star.star.dto.StarChatInitiatePageDTO;
import com.star.star.dto.StarChatPageDTO;
import com.star.star.dto.StarChatReplayPageDTO;
import com.star.star.entity.StarChat;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.star.star.vo.StarChatPageVO;
import org.apache.ibatis.annotations.Param;

/**
 * 粉丝留言艺人 Mapper 接口
 *
 * @author yangzj
 */
public interface StarChatMapper extends BaseMapper<StarChat> {

    /**
     * 艺人回复时，粉丝名称列表分页-通用
     *
     * @param dto 入参
     * @return {@link IPage}<{@link StarChatPageVO}>
     */
    IPage<StarChatPageVO> pageFans(@Param("page") StarChatPageDTO dto);

    /**
     * 粉丝留言时，艺人名称列表分页-通用
     *
     * @param dto 入参
     * @return {@link IPage}<{@link StarChatPageVO}>
     */
    IPage<StarChatPageVO> pageStar(@Param("page") StarChatPageDTO dto);

    /**
     * 艺人回复分页-通用
     *
     * @param dto 入参
     * @return {@link IPage}<{@link StarChatPageVO}>
     */
    IPage<StarChatPageVO> pageReplay(@Param("page") StarChatReplayPageDTO dto);

    /**
     * 粉丝留言分页-通用
     *
     * @param dto 入参
     * @return {@link IPage}<{@link StarChatPageVO}>
     */
    IPage<StarChatPageVO> pageInitiate(@Param("page") StarChatInitiatePageDTO dto);

    /**
     * 获取粉丝未读艺人消息统计
     *
     * @param starId 艺人ID
     * @param userId 用户ID
     * @return {@link Integer}
     */
    Integer getFansUnread(@Param("starId") Long starId, @Param("userId") Long userId);

    /**
     * 获取艺人未读粉丝消息统计
     *
     * @param fansUserId 粉丝用户id
     * @param userId 用户ID
     * @return {@link Integer}
     */
    Integer getStarUnread(@Param("fansUserId") Long fansUserId, @Param("userId") Long userId);

}
